package main

import "fmt"

/** go里 数组是值类型(而不是引用类型)*/
func testArray(){
  a := [3]int{10,20,30}
  b := a //go里 数组是值类型, 什么都会拷贝
  b[0] = 1000 //并不会影响a[0]
  fmt.Printf("a=%v\n",a)
  fmt.Printf("b=%v\n",b)
}

func modify(b [3]int){
  b[0] = 1000
}
func testArray2(){
  var a [3]int = [3]int{10,20, 30}
  modify(a) //数组作为实参传进函数时 也会被拷贝 在函数里修改接受的数组的某个成员 也不会改变原数组
  fmt.Println(a) //[10 20 30]
}

func main() {
  //testArray()
/*
   a=[10 20 30]
   b=[1000 20 30]
*/

  testArray2()
/*
   [10 20 30]
*/
}
